'use strict';

angular.module('crawlerApp')

.factory('taskHelper', ['$http', '$q', '$filter', 'taskapi', function($http, $q,
  $filter, taskapi) {
  return {
    // 创建周期任务
    buildTask: function(config) {
      var def = $q.defer();
      var req = {
        method: 'POST',
        url: taskapi.build(),
        data: config
      }
      $http(req).then(function(res) {
        def.resolve(res);
      }, function(rea) {
        def.reject(rea);
      });
      return def.promise;
    },
    // 启动任务
    startTask: function(config) {
      var def = $q.defer();
      var req = {
        method: 'POST',
        url: taskapi.start(),
        // url:taskapi.start(),
        data: config
      }
      $http(req).then(function(res) {
        def.resolve(res);
      }, function(rea) {
        def.reject(rea);
      });
      return def.promise;
    },
    // 暂停任务
    stopTask: function(config) {

    },
    // 查看任务状态
    getStatus: function() {
      var def = $q.defer();
      var req = {
        method: 'GET',
        url: taskapi.getStatus()
      };
      $http(req).then(function(res) {
        def.resolve(res);
      }, function(rea) {
        def.reject(rea);
      });
      return def.promise;
    },
    // 删除任务
    deleteTask: function() {

    },
    // 查看周期任务列表
    taskList: function() {
      // var def = $q.defer();
      // var req = {
      //   method: 'POST',
      //   url: taskapi.list()
      // }
      // $http(req).then(function(res) {
      //   def.resolve(res.data);
      // }, function(rea) {
      //   def.reject(rea.data);
      // });
      // return def.promise;
      var deferred = $q.defer();
      $http({
          method: 'POST',
          url:taskapi.list()
      }).then(function (data) {
          deferred.resolve(data.data);
      },function (data) {
        deferred.reject(data.data)
      });
      return deferred.promise;
      // var deferred = $q.defer();
      // $http({
      //     method: 'POST',
      //     url:taskapi.list()
      // }).success(function (data) {
      //     deferred.resolve(data);
      // }).error(function (data) {
      //   deferred.reject(data)
      // });
      // return deferred.promise;

    },
    // 更新任务配置
    updateTask: function() {

    }
  }
}]);
